﻿﻿using System.Drawing;
using System;

namespace Edigio
{
	/*
	 * Esta clase estática proporciona datos para las expresiones regulares, 
	 * las cuales permitiran el resaltado de sintaxis del código escrito en
	 * el editor.
	 */

	static class Instrucciones_intel_y_nasm
	{
		/*
		 * Propiedades de la clase.
		 */

		static private String instrucciones_de_proposito_general = @"AAA|AAD|AAM|AAS|DAA|DAS|JA|JAE|JB|JBE|JC|JE|JG|JGE|JL|JLE|JMP|JNA|JNAE|JNB|JNBE|JNC|JNE|JNG|JNGE|JNL|JNLE|JNO|JNP|JNS|JNZ|JO|JP|JPE|JPO|JS|JZ|JCXZ|JECXZ|JRCXZ|LOOP|LOOPE|LOOPNE|CALL|RET|ENTER|LEAVE|SYSCALL|SYSENTER|INT|INTO|SETA|SETAE|SETB|SETBE|SETC|SETE|SETG|SETGE|SETL|SETLE|SETNA|SETNAE|SETNB|SETNBE|SETNC|SETNE|SETNG|SETNGE|SETNL|SETNLE|SETNO|SETNP|SETNS|SETNZ|SETO|SETP|SETPE|SETPO|SETS|SETZ|SALC|CMOVO|CMOVNO|CMOVB|CMOVC|CMOVNAE|CMOVAE|CMOVNB|CMOVNC|CMOVE|CMOVZ|CMOVNE|CMOVNZ|CMOVBE|CMOVNA|CMOVA|CMOVNBE|CMOVS|CMOVNS|CMOVP|CMOVPE|CMOVNP|CMOVPO|CMOVL|CMOVNGE|CMOVGE|CMOVNL|CMOVLE|CMOVNG|CMOVG|CMOVNLE|ADD|SUB|ADC|SBB|NEG|CMP|INC|DEC|AND|OR|XOR|NOT|TEST|SHL|SHR|SAL|SAR|SHLD|SHRD|ROL|ROR|RCL|RCR|CBW|CWD|CWDE|CDQ|CDQE|CQO|BSF|BSR|BT|BTC|BTR|BTS|IDIV|IMUL|DIV|MUL|BSWAP|NOP|LEA|MOV|MOVSX|MOVSXD|MOVZX|XLATB|BOUND|XCHG|XADD|CMPXCHG|CMPXCHG8B|CMPXCHG16B|PUSH|POP|PUSHA|POPA|PUSHAD|POPAD|PUSHF|POPF|PUSHFD|POPFD|PUSHFQ|POPFQ|CLC|CLD|STC|STD|CMC|LAHF|SAHF|LOCK|REP|REPE|REPZ|REPNE|REPNZ|CMPS|CMPSB|CMPSW|CMPSQ|MOVS|MOVSB|MOVSW|MOVSQ|SCAS|SCASB|SCASW|SCASD|SCASQ|STOS|STOSB|STOSW|STOSD|STOSQ|LODS|LODSB|LODSW|LODSD|LODSQ|CPUID|RDTSC|RDTSCP|RDPMC|XGETBV|SGDT|SIDT|SLDT|SMSW|STR|LAR|LLWPCB|SLWPCB|LWPVAL|LWPINS|CRC32|POPCNT|LZCNT|TZCNT|MOVBE|PCLMULQDQ|RDRAND|RDFSBASE|RDGSBASE|WRFSBASE|WRGSBASE|ANDN|BEXTR|BLSI|BLSMK|BLSR|BZHI|MULX|PDEP|PEXT|RORX|SARX|SHLX|SHRX|BLCFILL|BLCI|BLCIC|BLCMSK|BLCS|BLSFILL|BLSIC|T1MSKC|TZMSK|ARPL|UD2|LDS|LES|LFS|LGS|LSS|LSL|VERR|VERW|CLI|STI|CLTS|HLT|RSM|IN|INSB|INSW|INSD|OUT|OUTSB|OUTSW|OUTSD|CLFLUSH|INVD|INVLPG|INVPCID|WBINVD|IRET|IRETD|IRETQ|SYSEXIT|SYSRET|LIDT|LGDT|LLDT|LMSW|LTR|MONITOR|MWAIT|RDMSR|WRMSR|SWAPGS|FXSAVE|FXSAVE64|FXRSTOR|FXRSTOR64|XSAVE|XSAVEOPT|XRSTOR|XSETBV|GETSEC|INVEPT|INVVPID|VMCALL|VMCLEAR|VMLAUNCH|VMRESUME|VMPTRLD|VMPTRST|VMREAD|VMWRITE|VMXOFF|VMXON|INVLPGA|SKINIT|CLGI|STGI|VMLOAD|VMSAVE|VMMCALL|VMRUN|";

		static private String instrucciones_fpu = "F2XM1|FABS|FADD|FADDP|FBLD|FBSTP|FCHS|FCLEX|FCOM|FCOMP|FCOMPP|FDECSTP|FDISI|FDIV|FDIVP|FDIVR|FDIVRP|FENI|FFREE|FIADD|FICOM|FICOMP|FIDIV|FIDIVR|FILD|FIMUL|FINCSTP|FINIT|FIST|FISTP|FISUB|FISUBR|FLD|FLD1|FLDCW|FLDENV|FLDENVW|FLDL2E|FLDL2T|FLDLG2|FLDLN2|FLDPI|FLDZ|FMUL|FMULP|FNCLEX|FNDISI|FNENI|FNINIT|FNOP|FNSAVE|FNSAVEW|FNSTCW|FNSTENV|FNSTENVW|FNSTSW|FPATAN|FPREM|FPTAN|FRNDINT|FRSTOR|FRSTORW|FSAVE|FSAVEW|FSCALE|FSQRT|FST|FSTCW|FSTENV|FSTENVW|FSTP|FSTSW|FSUB|FSUBP|FSUBR|FSUBRP|FTST|FWAIT|FXAM|FXCH|FXTRACT|FYL2X|FYL2XP1|FSETPM|FCOS|FLDENVD|FNSAVED|FNSTENVD|FPREM1|FRSTORD|FSAVED|FSIN|FSINCOS|FSTENVD|FUCOM|FUCOMP|FUCOMPP|FFREEP|FCOMI|FCOMIP|FUCOMI|FUCOMIP|FCMOVB|FCMOVE|FCMOVBE|FCMOVU|FCMOVNB|FCMOVNE|FCMOVNBE|FCMOVNU|FISTTP|";

		static private String instrucciones_simd = "MOVD|MOVQ|PADDB|PADDW|PADDD|PADDSB|PADDSW|PADDUSB|PADDUSW|PSUBB|PSUBW|PSUBD|PSUBSB|PSUBSW|PSUBUSB|PSUBUSW|PAND|PANDN|POR|PXOR|PCMPEQB|PCMPEQD|PCMPEQW|PCMPGTB|PCMPGTD|PCMPGTW|PMADDWD|PMULHW|PMULLW|PSLLW|PSLLD|PSLLQ|PSRLW|PSRLD|PSRLQ|PSRAW|PSRAD|PACKUSWB|PACKSSWB|PACKSSDW|PUNPCKLBW|PUNPCKLWD|PUNPCKLDQ|PUNPCKHBW|PUNPCKHWD|PUNPCKHDQ|EMMS|PAVGB|PAVGW|PEXTRW|PINSRW|PMOVMSKB|PMAXSW|PMAXUB|PMINSW|PMINUB|PMULHUW|PSADBW|PSHUFW|PREFETCHNTA|PREFETCHT0|PREFETCHT1|PREFETCHT2|MASKMOVQ|MOVNTQ|SFENCE|PADDSIW|PSUBSIW|PMACHRIW|PMULHRIW|PMAGW|PDISTIB|PAVEB|PMVZB|PMVNZB|PMVLZB|PMVGEZB|PFACC|PFADD|PFSUB|PFSUBR|PFMUL|PFCMPEQ|PFCMPGE|PFCMPGT|PFMAX|PFMIN|PFRCP|PFRCPIT1|PFRCPIT2|PFRSQIT1|PFRSQRT|PI2FD|PF2ID|PAVGUSB|PMULHRW|FEMMS|PFNACC|PFPNACC|PI2FW|PF2IW|PSWAPD|PFRSQRTV|PFRCPV|PREFETCH|PREFETCHW|ADDSS|ADDPS|SUBSS|SUBPS|MULSS|MULPS|DIVSS|DIVPS|SQRTSS|SQRTPS|RCPSS|RCPPS|RSQRTSS|RSQRTPS|MAXSS|MAXPS|MINSS|MINPS|CMPSS|COMISS|UCOMISS|CMPPS|CMPEQSS|CMPLTSS|CMPLESS|CMPUNORDSS|CMPNEQSS|CMPNLTSS|CMPNLESS|CMPORDSS|CMPEQPS|CMPLTPS|CMPLEPS|CMPUNORDPS|CMPNEQPS|CMPNLTPS|CMPNLEPS|CMPORDPS|ANDNPS|ANDPS|ORPS|XORPS|CVTSI2SS|CVTSS2SI|CVTTSS2SI|CVTPI2PS|CVTPS2PI|CVTTPS2PI|MOVSS|MOVLPS|MOVHPS|MOVLHPS|MOVHLPS|MOVAPS|MOVUPS|MOVNTPS|MOVMSKPS|SHUFPS|UNPCKHPS|UNPCKLPS|LDMXCSR|STMXCSR|ADDPD|ADDSD|SUBPD|SUBSD|MULSD|MULPD|DIVSD|DIVPD|SQRTSD|SQRTPD|MAXSD|MAXPD|MINSD|MINPD|CMPSD|COMISD|UCOMISD|CMPPD|CMPEQSD|CMPLTSD|CMPLESD|CMPUNORDSD|CMPNEQSD|CMPNLTSD|CMPNLESD|CMPORDSD|CMPEQPD|CMPLTPD|CMPLEPD|CMPUNORDPD|CMPNEQPD|CMPNLTPD|CMPNLEPD|CMPORDPD|ANDNPD|ANDPD|ORPD|XORPD|CVTSD2SS|CVTPD2PS|CVTSS2SD|CVTPS2PD|CVTDQ2PS|CVTPS2DQ|CVTTPS2DQ|CVTDQ2PD|CVTPD2DQ|CVTTPD2DQ|CVTSI2SD|CVTSD2SI|CVTTSD2SI|CVTPI2PD|CVTPD2PI|CVTTPD2PI|MOVSD|MOVLPD|MOVHPD|MOVAPD|MOVUPD|MOVNTPD|MOVMSKPD|SHUFPD|UNPCKHPD|UNPCKLPD|MOVNTI|MOVDQA|MOVDQU|MOVNTDQ|MASKMOVDQU|MOVDQ2Q|MOVQ2DQ|PADDQ|PSUBQ|PMULUDQ|PSLLDQ|PSRLDQ|MOVSLDUP|MOVSHDUP|MOVDDUP|LDDQU|PSIGNB|PSIGNW|PSIGND|PABSB|PABSW|PABSD|PALIGNR|PSHUFB|PMULHRSW|PMADDUBSW|PHADDW|PHADDD|PHADDSW|PHSUBW|PHSUBD|PHSUBSW|EXTRQ|INSERTQ|MOVNTSD|MOVNTSS|MPSADBW|PHMINPOSUW|PMULDQ|PMULLD|DPPS|DPPD|BLENDPS|BLENDPD|BLENDVPS|BLENDVPD|PBLENDVB|PBLENDW|PMAXSB|PMAXUW|PMAXSD|PMAXUD|PMINSB|PMINUW|PMINSD|PMINUD|ROUNDPS|ROUNDSS|ROUNDPD|ROUNDSD|INSERTPS|PINSRB|PINSRD|PINSRQ|EXTRACTPS|PEXTRB|PEXTRD|PEXTRQ|PMOVSXBW|PMOVSXBD|PMOVSXBQ|PMOVSXWD|PMOVSXWQ|PMOVSXDQ|PMOVZXBW|PMOVZXBD|PMOVZXBQ|PMOVZXWD|PMOVZXWQ|PMOVZXDQ|PTEST|PCMPEQQ|PACKUSDW|MOVNTDQA|PCMPGTQ|PCMPESTRI|PCMPESTRM|PCMPISTRI|PCMPISTRM|AESENC|AESENCLAST|AESDEC|AESDECLAST|AESKEYGENASSIST|AESIMC|XCRYPTCBC|XCRYPTCFB|XCRYPTCTR|XCRYPTECB|XCRYPTOFB|XSHA1|XSHA256|MONTMUL|XSTORE|VADDSS|VADDPS|VADDSD|VADDPD|VSUBSS|VSUBPS|VSUBSD|VSUBPD|VADDSUBPS|VADDSUBPD|VHADDPS|VHADDPD|VHSUBPS|VHSUBPD|VMULSS|VMULPS|VMULSD|VMULPD|VMAXSS|VMAXPS|VMAXSD|VMAXPD|VMINSS|VMINPS|VMINSD|VMINPD|VANDPS|VANDPD|VANDNPS|VANDNPD|VORPS|VORPD|VXORPS|VXORPD|VBLENDPS|VBLENDPD|VBLENDVPS|VBLENDVPD|VCMPSS|VCOMISS|VUCOMISS|VCMPSD|VCOMISD|VUCOMISD|VCMPPS|VCMPPD|VCMPEQSS|VCMPLTSS|VCMPLESS|VCMPUNORDSS|VCMPNEQSS|VCMPNLTSS|VCMPNLESS|VCMPORDSS|VCMPEQ_UQSS|VCMPNGESS|VCMPNGTSS|VCMPFALSESS|VCMPNEQ_OQSS|VCMPGESS|VCMPGTSS|VCMPTRUESS|VCMPEQ_OSSS|VCMPLT_OQSS|VCMPLE_OQSS|VCMPUNORD_SSS|VCMPNEQ_USSS|VCMPNLT_UQSS|VCMPNLE_UQSS|VCMPORD_SSS|VCMPEQ_USSS|VCMPNGE_UQSS|VCMPNGT_UQSS|VCMPFALSE_OSSS|VCMPNEQ_OSSS|VCMPGE_OQSS|VCMPGT_OQSS|VCMPTRUE_USSS|VCMPEQPS|VCMPLTPS|VCMPLEPS|VCMPUNORDPS|VCMPNEQPS|VCMPNLTPS|VCMPNLEPS|VCMPORDPS|VCMPEQ_UQPS|VCMPNGEPS|VCMPNGTPS|VCMPFALSEPS|VCMPNEQ_OQPS|VCMPGEPS|VCMPGTPS|VCMPTRUEPS|VCMPEQ_OSPS|VCMPLT_OQPS|VCMPLE_OQPS|VCMPUNORD_SPS|VCMPNEQ_USPS|VCMPNLT_UQPS|VCMPNLE_UQPS|VCMPORD_SPS|VCMPEQ_USPS|VCMPNGE_UQPS|VCMPNGT_UQPS|VCMPFALSE_OSPS|VCMPNEQ_OSPS|VCMPGE_OQPS|VCMPGT_OQPS|VCMPTRUE_USPS|VCMPEQSD|VCMPLTSD|VCMPLESD|VCMPUNORDSD|VCMPNEQSD|VCMPNLTSD|VCMPNLESD|VCMPORDSD|VCMPEQ_UQSD|VCMPNGESD|VCMPNGTSD|VCMPFALSESD|VCMPNEQ_OQSD|VCMPGESD|VCMPGTSD|VCMPTRUESD|VCMPEQ_OSSD|VCMPLT_OQSD|VCMPLE_OQSD|VCMPUNORD_SSD|VCMPNEQ_USSD|VCMPNLT_UQSD|VCMPNLE_UQSD|VCMPORD_SSD|VCMPEQ_USSD|VCMPNGE_UQSD|VCMPNGT_UQSD|VCMPFALSE_OSSD|VCMPNEQ_OSSD|VCMPGE_OQSD|VCMPGT_OQSD|VCMPTRUE_USSD|VCMPEQPD|VCMPLTPD|VCMPLEPD|VCMPUNORDPD|VCMPNEQPD|VCMPNLTPD|VCMPNLEPD|VCMPORDPD|VCMPEQ_UQPD|VCMPNGEPD|VCMPNGTPD|VCMPFALSEPD|VCMPNEQ_OQPD|VCMPGEPD|VCMPGTPD|VCMPTRUEPD|VCMPEQ_OSPD|VCMPLT_OQPD|VCMPLE_OQPD|VCMPUNORD_SPD|VCMPNEQ_USPD|VCMPNLT_UQPD|VCMPNLE_UQPD|VCMPORD_SPD|VCMPEQ_USPD|VCMPNGE_UQPD|VCMPNGT_UQPD|VCMPFALSE_OSPD|VCMPNEQ_OSPD|VCMPGE_OQPD|VCMPGT_OQPD|VCMPTRUE_USPD|VCVTSD2SS|VCVTPD2PS|VCVTSS2SD|VCVTPS2PD|VCVTSI2SS|VCVTSS2SI|VCVTTSS2SI|VCVTPI2PS|VCVTPS2PI|VCVTTPS2PI|VCVTDQ2PS|VCVTPS2DQ|VCVTTPS2DQ|VCVTDQ2PD|VCVTPD2DQ|VCVTTPD2DQ|VCVTSI2SD|VCVTSD2SI|VCVTTSD2SI|VCVTPI2PD|VCVTPD2PI|VCVTTPD2PI|VDIVSS|VDIVPS|VDIVSD|VDIVPD|VSQRTSS|VSQRTPS|VSQRTSD|VSQRTPD|VDPPS|VDPPD|VMASKMOVPS|VMASKMOVPD|VMOVSS|VMOVSD|VMOVAPS|VMOVAPD|VMOVUPS|VMOVUPD|VMOVNTPS|VMOVNTPD|VMOVHLPS|VMOVLHPS|VMOVLPS|VMOVLPD|VMOVHPS|VMOVHPD|VMOVSLDUP|VMOVSHDUP|VMOVDDUP|VMOVMSKPS|VMOVMSKPD|VROUNDSS|VROUNDPS|VROUNDSD|VROUNDPD|VRCPSS|VRCPPS|VRSQRTSS|VRSQRTPS|VUNPCKLPS|VUNPCKHPS|VUNPCKLPD|VUNPCKHPD|VBROADCASTSS|VBROADCASTSD|VBROADCASTF128|VEXTRACTPS|VINSERTPS|VEXTRACTF128|VINSERTF128|VSHUFPS|VSHUFPD|VPERMILPS|VPERMILPD|VPERM2F128|VTESTPS|VTESTPD|VPADDB|VPADDUSB|VPADDSB|VPADDW|VPADDUSW|VPADDSW|VPADDD|VPADDQ|VPSUBB|VPSUBUSB|VPSUBSB|VPSUBW|VPSUBUSW|VPSUBSW|VPSUBD|VPSUBQ|VPHADDW|VPHADDSW|VPHADDD|VPHSUBW|VPHSUBSW|VPHSUBD|VPSLLW|VPSLLD|VPSLLQ|VPSRLW|VPSRLD|VPSRLQ|VPSRAW|VPSRAD|VPAND|VPANDN|VPOR|VPXOR|VPBLENDWB|VPBLENDW|VPSIGNB|VPSIGNW|VPSIGND|VPAVGB|VPAVGW|VPABSB|VPABSW|VPABSD|VMOVD|VMOVQ|VMOVDQA|VMOVDQU|VLDDQU|VMOVNTDQ|VMOVNTDQA|VMASKMOVDQU|VPMOVSXBW|VPMOVSXBD|VPMOVSXBQ|VPMOVSXWD|VPMOVSXWQ|VPMOVSXDQ|VPMOVZXBW|VPMOVZXBD|VPMOVZXBQ|VPMOVZXWD|VPMOVZXWQ|VPMOVZXDQ|VPACKUSWB|VPACKSSWB|VPACKUSDW|VPACKSSDW|VPCMPEQB|VPCMPEQW|VPCMPEQD|VPCMPEQQ|VPCMPGTB|VPCMPGTW|VPCMPGTD|VPCMPGTQ|VPMADDUBSW|VPMADDWD|VPMULLW|VPMULHUW|VPMULHW|VPMULHRSW|VPMULLD|VPMULUDQ|VPMULDQ|VPMAXUB|VPMAXSB|VPMAXUW|VPMAXSW|VPMAXUD|VPMAXSD|VPMINUB|VPMINSB|VPMINUW|VPMINSW|VPMINUD|VPMINSD|VPMOVMSKB|VPTEST|VPUNPCKLBW|VPUNPCKLWD|VPUNPCKLDQ|VPUNPCKLQDQ|VPUNPCKHBW|VPUNPCKHWD|VPUNPCKHDQ|VPUNPCKHQDQ|VPSLLDQ|VPSRLDQ|VPALIGNR|VPSHUFB|VPSHUFLW|VPSHUFHW|VPSHUFD|VPEXTRB|VPEXTRW|VPEXTRD|VPEXTRQ|VPINSRB|VPINSRW|VPINSRD|VPINSRQ|VPSADBW|VMPSADBW|VPHMINPOSUW|VPCMPESTRI|VPCMPESTRM|VPCMPISTRI|VPCMPISTRM|VPCLMULQDQ|VAESENC|VAESENCLAST|VAESDEC|VAESDECLAST|VAESKEYGENASSIST|VAESIMC|VLDMXCSR|VSTMXCSR|VZEROALL|VZEROUPPER|VBROADCASTI128|VPBROADCASTB|VPBROADCASTW|VPBROADCASTD|VPBROADCASTQ|VPBLENDD|VPERMD|VPERMQ|VPERM2I128|VEXTRACTI128|VINSERTI128|VPMASKMOVD|VPMASKMOVQ|VPSLLVD|VPSLLVQ|VPSRAVD|VPSRLVD|VPGATHERDD|VPGATHERQD|VGATHERDQ|VGATHERQQ|VPERMPS|VPERMPD|VGATHERDPD|VGATHERQPD|VGATHERDPS|VGATHERQPS|VFRCZSS|VFRCZPS|VFRCZSD|VFRCZPD|VPERMIL2PS|VPERLIL2PD|VPCOMUB|VPCOMB|VPCOMUW|VPCOMW|VPCOMUD|VPCOMD|VPCOMUQ|VPCOMQ|VPHADDUBW|VPHADDBW|VPHADDUBD|VPHADDBD|VPHADDUBQ|VPHADDBQ|VPHADDUWD|VPHADDWD|VPHADDUWQ|VPHADDWQ|VPHADDUDQ|VPHADDDQ|VPHSUBBW|VPHSUBWD|VPHSUBDQ|VPMACSDD|VPMACSSDD|VPMACSDQL|VPMACSSDQL|VPMACSDQH|VPMACSSDQH|VPMACSWW|VPMACSSWW|VPMACSWD|VPMACSSWD|VPMADCSWD|VPMADCSSWD|VPCMOV|VPPERM|VPROTB|VPROTW|VPROTD|VPROTQ|VPSHAB|VPSHAW|VPSHAD|VPSHAQ|VPSHLB|VPSHLW|VPSHLD|VPSHLQ|VCVTPH2PS|VCVTPS2PH|VFMADDSS|VFMADDPS|VFMADDSD|VFMADDPD|VFMSUBSS|VFMSUBPS|VFMSUBSD|VFMSUBPD|VNFMADDSS|VNFMADDPS|VNFMADDSD|VNFMADDPD|VNFMSUBSS|VNFMSUBPS|VNFMSUBSD|VNFMSUBPD|VFMADDSUBPS|VFMADDSUBPD|VFMSUBADDPS|VFMSUBADDPD|VFMADD132SS|VFMADD213SS|VFMADD231SS|VFMADD132PS|VFMADD213PS|VFMADD231PS|VFMADD132SD|VFMADD213SD|VFMADD231SD|VFMADD132PD|VFMADD213PD|VFMADD231PD|VFMADDSUB132PS|VFMADDSUB213PS|VFMADDSUB231PS|VFMADDSUB132PD|VFMADDSUB213PD|VFMADDSUB231PD|VFMSUBADD132PS|VFMSUBADD213PS|VFMSUBADD231PS|VFMSUBADD132PD|VFMSUBADD213PD|VFMSUBADD231PD|VFMSUB132SS|VFMSUB213SS|VFMSUB231SS|VFMSUB132PS|VFMSUB213PS|VFMSUB231PS|VFMSUB132SD|VFMSUB213SD|VFMSUB231SD|VFMSUB132PD|VFMSUB213PD|VFMSUB231PD|VFNMADD132SS|VFNMADD213SS|VFNMADD231SS|VFNMADD132PS|VFNMADD213PS|VFNMADD231PS|VFNMADD132SD|VFNMADD213SD|VFNMADD231SD|VFNMADD132PD|VFNMADD213PD|VFNMADD231PD|VFNMSUB132SS|VFNMSUB213SS|VFNMSUB231SS|VFNMSUB132PS|VFNMSUB213PS|VFNMSUB231PS|VFNMSUB132SD|VFNMSUB213SD|VFNMSUB231SD|VFNMSUB132PD|VFNMSUB213PD|VFNMSUB231PD)$";

		static private String registros = @"AL|AH|BL|BH|CL|CH|DL|DH|SIL|DIL|BPL|SPL|R8B|R9B|R10B|R11B|R12B|R13B|R14B|R15B|AX|BX|CX|DX|SI|DI|BP|SP|R8W|R9W|R10W|R11W|R12W|R13W|R14W|R15W|EAX|EBX|ECX|EDX|ESI|EDI|EBP|ESP|R8D|R9D|R10D|R11D|R12D|R13D|R14D|R15D|RAX|RCX|RDX|RBX|RSP|RBP|RSI|RDI|R8|R9|R10|R11|R12|R13|R14|R15|DR0|DR1|DR2|DR3|DR6|DR7|CR0|CR2|CR3|CR4|CR8|TR3|TR4|TR5|TR6|TR7|CS|DS|ES|FS|GS|SS|ST|ST0|ST1|ST2|ST3|ST4|ST5|ST6|ST7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)$";



		static private String directivas = @"\s(db|dw|dd|dq|dt|do|dy|resb|resw|resd|resq|rest|reso|resy|incbin|equ|times|DB|DW|DD|DQ|DT|DO|DY|RESB|RESW|RESD|RESQ|REST|RESO|RESY|INCBIN|EQU|TIMES|safeseh|__utf16__|__utf32__|default|cpu|float|start|imagebase|osabi|..start|..imagebase|..gotpc|..gotoff|..gottpoff|..got|..plt|..sym|..tlsie|section|segment|__sect__|group|absolute|.bss|.comment|.data|.lbss|.ldata|.lrodata|.rdata|.rodata|.tbss|.tdata|.text|alloc|bss|code|exec|data|noalloc|nobits|noexec|nowrite|progbits|rdata|tls|write|private|public|common|stack|overlay|class|extern|global|import|export|%define|%idefine|%xdefine|%ixdefine|%assign|%undef|%defstr|%idefstr|%deftok|%ideftok|%strcat|%strlen|%substr|%macro|%imacro|%rmacro|%exitmacro|%endmacro|%unmacro|%if|%ifn|%elif|%elifn|%else|%endif|%ifdef|%ifndef|%elifdef|%elifndef|%ifmacro|%ifnmacro|%elifmacro|%elifnmacro|%ifctx|%ifnctx|%elifctx|%elifnctx|%ifidn|%ifnidn|%elifidn|%elifnidn|%ifidni|%ifnidni|%elifidni|%elifnidni|%ifid|%ifnid|%elifid|%elifnid|%ifnum|%ifnnum|%elifnum|%elifnnum|%ifstr|%ifnstr|%elifstr|%elifnstr|%iftoken|%ifntoken|%eliftoken|%elifntoken|%ifempty|%ifnempty|%elifempty|%elifnempty|%ifenv|%ifnenv|%elifenv|%elifnenv|%rep|%exitrep|%endrep|%while|%exitwhile|%endwhile|%include|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%local|%stacksize|flat|flat64|large|small|%error|%warning|%fatal|%00|.nolist|%rotate|%line|%!|%final|%clear|struc|endstruc|istruc|at|iend|align|alignb|sectalign|bits|use16|use32|use64|__nasm_major__|__nasm_minor__|__nasm_subminor__|___nasm_patchlevel__|__nasm_version_id__|__nasm_ver__|__file__|__line__|__pass__|__bits__|__output_format__|__date__|__time__|__date_num__|__time_num__|__posix_time__|__utc_date__|__utc_time__|__utc_date_num__|__utc_time_num__|__float_daz__|__float_round__|__float__|__use_altreg__|__use_smartalign__|smartalign|__alignmode__|__use_fp__|__infinity__|__nan__|__qnan__|__snan__|__float8__|__float16__|__float32__|__float64__|__float80m__|__float80e__|__float128l__|__float128h__)$";

		static private String comentarios = "(;)"; // AVERIGUAR FUNCIONAMINTO

		static private String operandos = @"A16|A32|A64|O16|O32|O64|STRICT|BYTE|WORD|DWORD|QWORD|TWORD|OWORD|YWORD|NOSPLIT|%0|%1|%2|%3|%4|%5|%6|%7|%8|%9|ABS|REL|SEG|WRT)$";

		//static private String simbolos =  @"\s(([)|(])|(()|())|(+)|(-)|(*)|(/)|(%)|(.)|(:)|($)|($$)|(%+)|(%?)|(%??))";

		
	}

}